/**
 * Trim
 *
 * @category    kardasz
 * @package     trim
 * @author      Krzysztof Kardasz <krzysztof.kardasz@gmail.com>
 * @copyright   Copyright (c) 2011 Krzysztof Kardasz
 * @license     http://www.gnu.org/licenses/lgpl-3.0.txt  GNU Lesser General Public
 * @version     1.0 $Id$
 * @link        https://kardasz.googlecode.com
 */

/**
 * Usuwa białe z początku napisu
 *
 * @param char * str ciąg znaków
 * @return void
 */
char * ltrim(char * str)
{
    char *ptr;
    int  len;
    for (ptr = str; *ptr && isspace((int)*ptr); ++ptr);
    len = strlen(ptr);
    memmove(str, ptr, len + 1);
    return str;
}

/**
 * Usuwa białe z końca napisu
 *
 * @param char * str ciąg znaków
 * @return void
 */
char * rtrim(char * str)
{
    char *ptr;
    int   len;

    len = strlen(str);
    for (ptr = str + len - 1; ptr >= str && isspace((int)*ptr ); --ptr);

    ptr[1] = '\0';

    return str;
}

/**
 * Usuwa białe z początku i końca napisu
 *
 * @param char * str ciąg znaków
 * @return void
 */
char * trim(char * str)
{
    char *ptr;
    ptr = rtrim(str);
    str = ltrim(ptr);
    return str;
}
